

cmake_minimum_required(VERSION 3.8...3.17 FATAL_ERROR)

#强制外部编译
if($PROJECT_BINARY_DIR} STREQUAL $PROJECT_SOURCE_DIR})
  message(FATAL_ERROR "源码路径和构建路径不能相同，请创建build文件夹；需要手动删除CMakeFiles/ 和 CMakeCache.txt")
endif()

# 名称
set(_NAME H2O2)
project (${_NAME})

# 引入模块路径
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)

# 从文本中读取版本号
file(STRINGS version.txt _version)
message(STATUS "当前版本：${_version}")

#提取版本号
include(DetermineVersion)
extract_version_components("${_version}" ${_NAME})
message(STATUS "当前版本：${${_NAME}_VERSION}")


# 第三方依赖选项设置
option(ENABLE_MPI "开启MPI" OFF)
option(ENABLE_CUDA "开启GPU" OFF)
option(ENABLE_TESTING "测试用例可用" OFF)
option(ENABLE_PETSC "开启petsc库" OFF)
option(ENABLE_METIS "开启metis" OFF)
option(ENABLE_EXOUDS "启用exodus" ON)

mark_as_advanced(
    ENABLE_CUDA
    ENABLE_PETSC
)

# 设置构建类型
#include(BuildType)

#include(CompilerFlags)
# include(Wrappers)

add_library(_compiler_flags INTERFACE)
target_include_directories(_compiler_flags INTERFACE
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
  )

add_subdirectory(src)

add_subdirectory(examples/introduction/introduction_ex5)